﻿using LowCoding.Common;
using LowCoding.Domain.Entity;
using LowCoding.Dto;
using LowCoding.Dto.Sys;

namespace LowCoding.Application.Sys.User
{
    /// <summary>
    /// 用户模块
    /// </summary>
    public interface ISysUserService : IServiceBase<SysUser, SysUserInput, SysUserOutput, SysUserSearchInput, string>
    {
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="loginModel"></param>
        /// <returns></returns>
        public Task<SysUserOutput> CheckUserLoginWithMd5Pwd(LoginInput loginModel);
        /// <summary>
        /// 用户添加
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<SysUserOutput> UserInsert(SysUserInput input);
        /// <summary>
        /// 密码重置
        /// </summary>
        /// <param name="key"></param>
        /// <param name="defaultpass"></param>
        /// <returns></returns>
        public Task<bool> UserResetPass(string key, string defaultpass);
        /// <summary>
        /// 批量物理删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Task<UpdateResult> DelUserAsync(List<string> id);
        /// <summary>
        /// 用户列表显示
        /// </summary>
        /// <returns></returns>
        public Task<ResponseMessageModel> Getlist();
        /// <summary>
        /// 单个物理删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Task<ResponseMessageModel> DeleteUserById(string id);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<ResponseMessageModel> UpdateUserAsync(SysUserInputUpt_Dto input);

        List<SysName> sysNames();

    }
}
